/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.sele.manager;

import com.brain.core.manager.*;
import com.brain.core.exception.DAOException;
import com.brain.core.hibernate.dao.DAOGenerico;
import com.brain.sele.dto.MiembroComiteDto;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

/**
 *
 * @author Hvives
 */
@Service
public class MiembroComiteManager extends ComunManager<MiembroComiteDto> implements Serializable {

    private static Logger logger = Logger.getLogger(MiembroComiteManager.class);
    @Resource
    private RecursosManager recursosManager;
    @Resource
    private DAOGenerico<MiembroComiteDto> springHibernateDao;

    public MiembroComiteDto obtenerPorId(Long id) throws DAOException {
        return springHibernateDao.obtenerDtoPorId(MiembroComiteDto.class, id);
    }

    public List<MiembroComiteDto> obtenerMiembrosComitePorConvocatoria(Long idConvocatoria, final String sqr) throws DAOException {
        List<Object> listaParametros = new ArrayList<Object>();

        String hqsql = "select e from MiembroComiteDto as e where convocatoriaDto.id = ? and e.estado = ? ";
        listaParametros.add(idConvocatoria);
        listaParametros.add(Boolean.TRUE);
        hqsql += " and ( upper(e.miembroDto.descripcion) like '%" + sqr.toUpperCase() + "%'";
        hqsql += " or upper(e.miembroDto.login) like '%" + sqr.toUpperCase() + "%'";
        hqsql += " or upper(e.miembroDto.rolDto.descripcion) like '%" + sqr.toUpperCase() + "%' )";
        hqsql += " order by e.miembroDto.descripcion asc";
        

        return springHibernateDao.ejecutarQuery(hqsql, listaParametros);
    }

    public List<MiembroComiteDto> obtenerConFiltroConOrden(Map<String, Object> filtros, Map<String, String> orden) throws DAOException {
        return springHibernateDao.obtenerDtosConFiltrosConOrden(MiembroComiteDto.class, filtros, orden);
    }
    
}
